#include <arch.h>
#include <asm_macros.h>

	.global rom_exceptions

	/* -----------------------------------------------------
	 * Very simple stackless exception handlers used by ROM (EL3).
	 * -----------------------------------------------------
	 */
vector_base rom_exceptions
	/* -----------------------------------------------------
	 * Current EL with SP0 : 0x0 - 0x200
	 * -----------------------------------------------------
	 */
vector_entry curr_el_sp0_sync
    b   plat_handle_exception
    check_vector_size curr_el_sp0_sync

vector_entry curr_el_sp0_irq
    b   plat_handle_interrupt
    check_vector_size curr_el_sp0_irq

vector_entry curr_el_sp0_fiq
    b   plat_handle_interrupt
    check_vector_size curr_el_sp0_fiq

vector_entry curr_el_sp0_serror
    b   plat_handle_exception
    check_vector_size curr_el_sp0_serror

	/* -----------------------------------------------------
	 * Current EL with SPx: 0x200 - 0x400
	 * -----------------------------------------------------
	 */
vector_entry curr_el_spx_sync
    b   .
vector_entry curr_el_spx_irq
    b   .
vector_entry curr_el_spx_fiq
    b   .
vector_entry curr_el_spx_serror
    b   .

	/* -----------------------------------------------------
	 * Lower EL using AArch64 : 0x400 - 0x600
	 * -----------------------------------------------------
	 */
vector_entry lower_el_aarch64_sync
    b   .
vector_entry lower_el_aarch64_irq
    b   .
vector_entry lower_el_aarch64_fiq
    b   .
vector_entry lower_el_aarch64_serror
    b   .

	/* -----------------------------------------------------
	 * Lower EL using AArch32 : 0x600 - 0x800
	 * -----------------------------------------------------
	 */
vector_entry lower_el_aarch32_sync
    b   .
vector_entry lower_el_aarch32_irq
    b   .
vector_entry lower_el_aarch32_fiq
    b   .
vector_entry lower_el_aarch32_serror
    b   .
